package Util;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
import java.util.Map;

public class Tools {



    //MD5加密方法
    public static String getMD5(String input) {
        try {
            // 获取 MD5 加密算法实例
            MessageDigest md = MessageDigest.getInstance("MD5");

            // 将输入字符串转换为字节数组
            byte[] inputBytes = input.getBytes();

            // 计算 MD5 哈希值
            byte[] hashBytes = md.digest(inputBytes);

            // 将哈希值转换为十六进制字符串
            StringBuilder sb = new StringBuilder();
            for (byte b : hashBytes) {
                sb.append(String.format("%02x", b)); // 使用 %02x 将每个字节表示为两位十六进制数
            }

            return sb.toString();
        } catch (NoSuchAlgorithmException e) {
            // 当算法不可用时，处理异常
            System.out.println("MD5 算法不可用：" + e.getMessage());
            return null;
        }
    }





    //&字符串转map
    public static Map<String, String> getURLParameters(String urlString) {
        Map<String, String> parameters = new HashMap<>();

        try {
            String[] urlParts = urlString.split("\\?");
            if (urlParts.length > 1) {
                String query = urlParts[1];
                String[] pairs = query.split("&");

                for (String pair : pairs) {
                    int idx = pair.indexOf("=");
                    String key = URLDecoder.decode(pair.substring(0, idx), "UTF-8");
                    String value = URLDecoder.decode(pair.substring(idx + 1), "UTF-8");

                    // 将空格替换为加号
                    value = value.replace(" ", "+");

                    parameters.put(key, value);
                }
            }
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }

        return parameters;
    }



}
